package com.javabasestage2.Object.ObjectBase;

public class OverLoad01 {
    public static void main(String[] args) {
        //案例：类：MyCalculator 方法：calculate
        // 1) calculate(int n1, int n2) //两个整数的和
        // 2) calculate(int n1, double n2) //一个整数，一个 double 的和
        // 3) calculate(double n2, int n1)//一个 double ,一个 Int 和
        // 4) calculate(int n1, int n2,int n3)//三个 int 的和

        MyCalulator mm =   new MyCalulator();
        double res = mm.calculate(2.1, 3);
        System.out.println(res);
    }
}

class  MyCalulator{
    //重载要求：【方法名】必须相同
    //形参不能相同！！
    //与返回类型和 参数名无关！！
    public int calculate(int n1, int n2){
        return n1 + n2;
    }
    //看看下面是否构成重载？   没有构成，而是方法的重复定义！！
//    public int calculate(int a1, int a2){
//        return a1 +a2;
//    }

   public double calculate(int n1, double n2){
        return n1 + n2;
   }
   public double calculate(double n2, int n1){
       System.out.println("calculate(double n2, int n1)被调用");
        return  n1 + n2;
   }
   public  int calculate(int n1, int n2,int n3){
        return n1 + n2 + n3;
   }
}